|
(******************************************************************************)
(**) ОТДЕЛ РусЛат+;
(******************************************************************************)
(* НАЗНАЧЕНИЕ: транслитерация файла, содержащего русские буквы *)
(******************************************************************************)
ИСПОЛЬЗУЕТ
ОС ИЗ "...\Отделы\Обмен\",
Знак ИЗ "...\Отделы\Иное\",
Параметр ИЗ "...\Отделы\Обмен\",
Читать ИЗ "...\Отделы\Обмен\",
Писать ИЗ "...\Отделы\Обмен\",
Вывод ИЗ "...\Отделы\Обмен\",
Файл ИЗ "...\Отделы\Обмен\",
Перевод ИЗ "...\Отделы\Иное\";
(******************************************************************************)
ЗАДАЧА Ошибка1(ц-:ЦЕПЬ);
УКАЗ
Вывод.Цепь(ц);
Вывод.Цепь("^РусЛат вх.файл вых.файл");
(* Пояснение: при записи текста в поток (в т.ч. на экран)
* знак ^ обозначает переход на новую строку и сброс данных *)
СТОП(1)
КОН Ошибка1;
(******************************************************************************)
ЗАДАЧА Ошибка2(ц1-,ц2-:ЦЕПЬ);
УКАЗ
Вывод.Цепь(ц1);
Ошибка1(ц2)
КОН Ошибка2;
(******************************************************************************)
ЗАДАЧА Работа(ч:Читать.Поток; п:Писать.Поток);
ПОСТ
ЗНАКОВ=100; (* можем прочитать за раз ЗНАКОВ из файла *)
ПЕР
рус:ЦЕПЬ[ЗНАКОВ ];
лат:ЦЕПЬ[ЗНАКОВ*2];
УКАЗ
ПОКА НЕ Читать.Конец(ч) ВЫП
Читать.Строка(ч,рус);
Перевод.ВЛат(рус,лат);
Писать.ЗнакиЦепи(п,лат);
ЕСЛИ Читать.НачалоСтроки(ч) ТО
Писать.ЗнакЦепи(п,0DX);
Писать.ЗнакЦепи(п,0AX)
КОН
КОН
КОН Работа;
(******************************************************************************)
ЗАДАЧА Голова();
ПЕР
ч:Читать.Поток;
п:Писать.Поток;
пимя,чимя:Файл.ВПолного;
УКАЗ
ЕСЛИ Параметр.всего < 2 ТО Ошибка1("Нет имени входного файла") КОН;
ЕСЛИ Параметр.всего < 3 ТО Ошибка1("Нет имени выходного файла") КОН;
Параметр.Текст(1,чимя);
Параметр.Текст(2,пимя);
ч:=Читать.Открыть(чимя);
п:=Писать.Открыть(пимя);
ЕСЛИ ч=ПУСТО ТО Ошибка2(чимя," не открывается") КОН;
ЕСЛИ п=ПУСТО ТО Ошибка2(пимя," не открывается") КОН;
ч.видЗнаков:=Читать.знУни;
п.видЗнаков:=Писать.знУни;
Работа(ч,п);
Читать.Закрыть(ч);
Писать.Закрыть(п)
КОН Голова;
УКАЗ
Голова
КОН РусЛат.
▲ Вопросы, замечания и предложения высылайте на atimopheyev@yahoo.com или Издателю Глагола:
|
|